Versi 1
| Field | Isi |
|---|---|
| Dokumen ID | VBS-PRD-002 |
| Deskripsi | Pencatatan produksi berdasarkan formula dari Master Formula Produksi: pilih formula dan kuantitasnya, catat realisasi bahan, modifier, biaya langsung, dan hasil produksi, lalu simpan draft, rencana, atau final |
| Nomor Revisi | 1 |
| Tanggal | 2026-10-04 |
| Keterangan | Dokumentasi baseline dari dokumentasi fitur demo dan kode FE |
1. Ringkasan
a. In scope
- User melihat daftar produksi dengan formula beserta nomor invoice, kuantitas resep, nama resep, tanggal mulai, tanggal selesai, status, dan jenis invoice.
- User memfilter daftar berdasarkan nomor SPK, rentang tanggal mulai, cabang, cluster, status, dan invoice formula (BOM).
- User membuat produksi dengan memilih cabang, tanggal, formula produksi berstatus final, dan kuantitas formula.
- Sistem mengisi kebutuhan bahan baku, bahan pendukung, modifier, biaya langsung, dan hasil jadi dari formula, lalu user mengisi realisasinya.
- Cluster mengikuti cluster dari formula yang dipilih.
- User menentukan pembagian HPP hasil jadi (proporsional kuantitas hasil terkecil, jumlah SKU, atau custom).
- User menyimpan produksi sebagai draft, rencana produksi, atau final, lalu mengubah, melihat, memposting ulang, menghapus draft, membuka kembali ke draft, dan mencetak dokumen produksi.
b. Catatan
c. Kesimpulan
- [FE] -
- [BE] -
2. Functional Requirement
| Kode | Deskripsi |
|---|---|
| FR-01 | Sistem menampilkan daftar produksi jenis with_bom dengan kolom nomor invoice, kuantitas resep, nama resep, start produksi, selesai produksi, status invoice, dan jenis invoice |
| FR-02 | Sistem menyediakan filter nomor SPK, rentang start produksi, cabang, cluster (jika punya hak cluster), status, dan invoice BOM |
| FR-03 | Form tambah mewajibkan cabang, tanggal, formula produksi, dan kuantitas formula minimal 0,1 |
| FR-04 | Pilihan formula hanya berisi formula berstatus final |
| FR-05 | Saat formula dipilih, sistem memuat detail formula dan mengisi cluster dari formula (tidak dapat diubah) |
| FR-06 | Form memiliki tab bahan baku, bahan pendukung, modifier, biaya langsung, dan bahan jadi dengan kuantitas resep dari formula dan kuantitas realisasi yang diisi user |
| FR-07 | Sistem menyediakan opsi simpan draft, simpan sebagai rencana produksi (jika punya hak perintah produksi), dan simpan final dengan validasi total HPP 100% saat final |
| FR-08 | User dapat mengubah produksi yang belum tercetak dan belum selesai |
| FR-09 | User dapat melihat detail produksi dan memposting ulang produksi final |
| FR-10 | User dengan hak draft dapat menghapus produksi draft dan membuka kembali produksi final menjadi draft |
| FR-11 | User dengan hak perintah produksi dapat memajukan status dari daftar (rencana, sedang berjalan, selesai) |
| FR-12 | User dapat mencetak dokumen produksi satu per satu atau massal |
3. Use Case List
| Kode | Deskripsi |
|---|---|
| UC-01 | Melihat dan memfilter daftar produksi dengan formula |
| UC-02 | Membuat produksi dengan formula |
| UC-03 | Mengubah realisasi produksi dengan formula |
| UC-04 | Memajukan status produksi dari daftar |
| UC-05 | Melihat detail dan memposting ulang produksi |
| UC-06 | Menghapus produksi draft |
| UC-07 | Membuka kembali (unlock) produksi final ke draft |
| UC-08 | Mencetak dokumen produksi |
4. Use Case Scenario
UC-01 : Melihat dan memfilter daftar produksi dengan formula
| Aktor | User produksi |
| Deskripsi | User melihat daftar produksi berformula dan mempersempitnya dengan filter |
| Prekondisi | User sudah login dan memilih brand |
| Alur utama | 1. User membuka menu Transaksi, Produksi, Produksi dengan Formula. 2. Sistem menampilkan daftar produksi dengan formula. 3. User klik Filter dan mengisi nomor SPK, rentang start produksi, cabang, cluster, status, atau invoice BOM. 4. User klik Terapkan. 5. Sistem memuat ulang daftar sesuai filter. |
| Alur negatif | - Jika gagal memuat data, daftar dikosongkan. - Jika user klik Atur ulang, semua filter dikosongkan. |
| Bisnis rule | - Daftar selalu dibatasi jenis SPK with_bom.- Filter invoice BOM hanya tampil di halaman ini, memakai daftar formula dari Master Formula Produksi. - Status: to do draft = Draft, to do = Belum dikerjakan, in progress = Sedang berjalan, selesai = Selesai. |
| Postkondisi | Daftar tampil sesuai filter |
| Trigger | User membuka halaman atau menerapkan filter |
| Kode FR | FR-01 FR-02 |
UC-02 : Membuat produksi dengan formula
| Aktor | User produksi dengan hak dasar produksi |
| Deskripsi | User mencatat produksi berdasarkan formula dan mengisi realisasi bahan serta hasil |
| Prekondisi | User punya hak #produksi basicSudah ada formula produksi berstatus final |
| Alur utama | 1. User klik tambah produksi dengan formula. 2. Sistem menyinkronkan data integritas produksi yang belum lengkap dan memuat daftar formula final. 3. User memilih cabang dan tanggal. 4. User memilih formula produksi dan mengisi kuantitas formula. 5. Sistem memuat detail formula, mengisi cluster, dan menghitung kebutuhan resep per tab. 6. User mengisi realisasi bahan baku, bahan pendukung, modifier, biaya langsung, dan bahan jadi beserta pembagian HPP. 7. User memilih Simpan draft, Simpan sebagai rencana produksi, atau Simpan final. 8. Sistem menyimpan produksi lalu membuka pilihan cetak, atau kembali ke daftar jika draft. |
| Alur negatif | - Jika header tidak lengkap, muncul "Tolong lengkapi form dengan benar!". - Jika formula kosong, muncul "Formula Produksi Wajib Diisi". - Jika kuantitas kosong atau di bawah 0,1, muncul "Qty Formula Produksi Wajib Diisi" atau "Qty Formula Produksi Minimal 0.1". - Jika bahan baku tidak valid, muncul "Form Bahan Baku Wajib Diisi". - Jika bahan pendukung tidak valid, muncul "Oops ada yang salah di form Bahan Pendukung!". - Jika modifier tidak valid, muncul "Oops ada yang salah di form Modifier!". - Jika biaya langsung tidak valid, muncul "Oops ada yang salah di form Biaya Langsung!". - Jika bahan jadi tidak valid, muncul "Form Bahan Jadi Wajib Diisi". - Jika final dan total HPP bukan 100%, muncul "Total Pembagian HPP Bahan Jadi harus = 100%! Total HPP Anda = X%". - Jika simpan gagal, muncul "Gagal Membuat Invoice Produksi dengan Formula". |
| Bisnis rule | - Hanya formula berstatus final yang dapat dipilih. - Cluster diambil dari formula dan field cluster dinonaktifkan. - Setiap baris membawa kuantitas resep (dari formula dikali kuantitas) dan kuantitas realisasi. - Modifier adalah bahan tambahan di luar resep yang ikut tercatat sebagai pemakaian. - Gudang asal atau gudang tujuan kosong otomatis memakai cabang header. - Produksi dengan formula hanya mencatat tanggal mulai, tidak ada tanggal selesai di form. |
| Postkondisi | Produksi dengan formula tercatat |
| Trigger | User klik salah satu opsi simpan |
| Kode FR | FR-03 FR-04 FR-05 FR-06 FR-07 |
UC-03 : Mengubah realisasi produksi dengan formula
| Aktor | User produksi dengan hak dasar produksi |
| Deskripsi | User memperbarui realisasi produksi berformula yang belum final |
| Prekondisi | Produksi belum tercetak dan statusnya bukan selesai |
| Alur utama | 1. User memilih Edit pada menu baris. 2. Sistem memuat detail produksi dan detail formula terkait. 3. User mengubah realisasi pada tab yang diperlukan. 4. User memilih opsi simpan. 5. Sistem memperbarui produksi. |
| Alur negatif | - Validasi form dan HPP sama seperti saat membuat. - Jika simpan gagal, muncul pesan gagal dari halaman. |
| Bisnis rule | - Baris lama yang dihapus dikirim dengan penanda hapus. - Formula yang dipakai tetap mengacu pada formula saat produksi dibuat. |
| Postkondisi | Realisasi produksi terbarui |
| Trigger | User klik opsi simpan pada form edit |
| Kode FR | FR-07 FR-08 |
UC-04 : Memajukan status produksi dari daftar
| Aktor | User dengan hak perintah produksi |
| Deskripsi | User mengubah status produksi berformula dari menu baris |
| Prekondisi | User punya hak #perintah-produksi dan produksi belum final |
| Alur utama | 1. User membuka menu baris. 2. User memilih Simpan sebagai rencana produksi atau Tandai Sedang Berjalan. 3. Sistem memperbarui status. 4. Untuk menyelesaikan, user memilih Tandai Selesai dan sistem membuka form edit. |
| Alur negatif | - Jika gagal, muncul "Gagal update Invoice Produksi dengan Formula". |
| Bisnis rule | - Aturan tampil aksi sama dengan produksi tanpa formula (menu baris yang sama dipakai bersama). |
| Postkondisi | Status produksi berubah |
| Trigger | User memilih aksi status |
| Kode FR | FR-11 |
UC-05 : Melihat detail dan memposting ulang produksi
| Aktor | User dengan hak lihat produksi |
| Deskripsi | User melihat detail produksi berformula dan memposting ulang produksi final |
| Prekondisi | User punya hak #produksi view |
| Alur utama | 1. User memilih Lihat. 2. Sistem menampilkan detail produksi dan formula yang dipakai. 3. Untuk produksi tercetak, user memilih Posting Ulang. 4. Sistem memposting ulang dan menampilkan pesan berhasil. |
| Alur negatif | - Jika gagal, muncul pesan error dari BE. |
| Bisnis rule | - Posting ulang hanya untuk produksi tercetak. |
| Postkondisi | Detail tampil atau produksi diposting ulang |
| Trigger | User membuka halaman lihat |
| Kode FR | FR-09 |
UC-06 : Menghapus produksi draft
| Aktor | User dengan hak draft produksi |
| Deskripsi | User menghapus produksi berformula yang masih draft |
| Prekondisi | Produksi berstatus draft dan belum tercetak |
| Alur utama | 1. User memilih Hapus. 2. Sistem meminta konfirmasi. 3. Sistem menghapus produksi dan menampilkan "Berhasil hapus Invoice". |
| Alur negatif | - Jika gagal, muncul pesan error dari BE. |
| Bisnis rule | - Butuh hak #can-draft dan hak #produksi draft. |
| Postkondisi | Produksi draft terhapus |
| Trigger | User konfirmasi hapus |
| Kode FR | FR-10 |
UC-07 : Membuka kembali (unlock) produksi final ke draft
| Aktor | User dengan hak draft produksi |
| Deskripsi | User mengembalikan produksi berformula yang final menjadi draft |
| Prekondisi | Produksi tercetak dan berstatus selesai |
| Alur utama | 1. User memilih Ubah ke Simpan Draft. 2. Sistem membuka kunci produksi. 3. Muncul "Berhasil Ubah ke Simpan Draft Invoice ...". |
| Alur negatif | - Jika gagal, muncul pesan error dari BE. |
| Bisnis rule | - Butuh hak #can-draft dan hak #produksi draft.- Status kembali menjadi to do draft. |
| Postkondisi | Produksi kembali draft |
| Trigger | User memilih Ubah ke Simpan Draft |
| Kode FR | FR-10 |
UC-08 : Mencetak dokumen produksi
| Aktor | User dengan hak cetak ulang produksi |
| Deskripsi | User mencetak dokumen produksi berformula satu per satu atau massal |
| Prekondisi | Produksi bukan draft |
| Alur utama | 1. User memilih Print. 2. Sistem menampilkan dokumen sesuai status: dokumen final (laporan realisasi, penyerahan bahan jadi) atau dokumen rencana (surat perintah produksi, surat pengambilan barang). 3. User mencetak. 4. Untuk cetak massal, user memakai Print Bulk lalu mencentang produksi tercetak. |
| Alur negatif | - Jika data gagal diambil, muncul "Kesalahan dalam pengambilan data. error: ...". |
| Bisnis rule | - Cetak massal hanya untuk produksi tercetak dan mencetak laporan realisasi produksi. |
| Postkondisi | Dokumen tercetak |
| Trigger | User memilih Print atau Print Bulk |
| Kode FR | FR-12 |
5. Data Flow Diagram
DFD-01
6. Sequence Diagram
SD-01 — UC-01 : Melihat dan memfilter daftar produksi dengan formula
SD-02 — UC-02 : Membuat produksi dengan formula
SD-03 — UC-03 : Mengubah realisasi produksi dengan formula
SD-04 — UC-04 : Memajukan status produksi dari daftar
SD-05 — UC-05 : Melihat detail dan memposting ulang produksi
SD-06 — UC-06 : Menghapus produksi draft
SD-07 — UC-07 : Membuka kembali (unlock) produksi final ke draft
SD-08 — UC-08 : Mencetak dokumen produksi
7. Table Schema
8. API Schema
| Endpoint | Status | Perubahan |
|---|---|---|
GET /invoice-spk | existing | - |
GET /invoice-spk/:id | existing | - |
POST /invoice-spk/create-all | existing | - |
PUT /invoice-spk/update-all/:id | existing | - |
PUT /invoice-spk/:id | existing | - |
DELETE /invoice-spk/:id | existing | - |
PUT /invoice-spk/unlock/:id | existing | - |
GET /invoice-bom | existing | - |
GET /invoice-bom/:id | existing | - |
GET /cluster/:id | existing | - |
POST /integrity/sync-satuan-bulk | existing | - |